themingeninge: Handle translations properly
authorBenjamin Otte <otte@redhat.com>
Sun, 22 May 2011 01:53:21 +0000 (03:53 +0200)
committerBenjamin Otte <otte@redhat.com>
Sun, 22 May 2011 03:56:12 +0000 (05:56 +0200)
We want to keep the location of where to render, but transform th
context by the pango transform.

gtk/gtkthemingengine.c

index 19b6dfc83ddea61fc4ec635ab324e14e1c31cf9d..4ae5904a4b50ed5d7ec042340dc9b6a1d1e5f051 100644 (file)
@@ -2370,29 +2370,18 @@ prepare_context_for_layout (cairo_t *cr,
 
   matrix = pango_context_get_matrix (pango_layout_get_context (layout));
 
+  cairo_move_to (cr, x, y);
+
   if (matrix)
     {
       cairo_matrix_t cairo_matrix;
-      PangoRectangle rect;
 
       cairo_matrix_init (&cairo_matrix,
                          matrix->xx, matrix->yx,
                          matrix->xy, matrix->yy,
                          matrix->x0, matrix->y0);
 
-      pango_layout_get_extents (layout, NULL, &rect);
-      pango_matrix_transform_rectangle (matrix, &rect);
-      pango_extents_to_pixels (&rect, NULL);
-
-      cairo_matrix.x0 += x - rect.x;
-      cairo_matrix.y0 += y - rect.y;
-
-      cairo_set_matrix (cr, &cairo_matrix);
-      cairo_move_to (cr, 0, 0);
-    }
-  else
-    {
-      cairo_move_to (cr, x, y);
+      cairo_transform (cr, &cairo_matrix);
     }
 }